package com.hangsu.train.components.service;

import com.hangsu.train.components.entity.User;
import com.hangsu.train.components.params.LoginParam;
import com.hangsu.train.components.params.PageRequestParam;
import com.nimbusds.jose.JOSEException;
import org.springframework.data.domain.Page;

public interface UserService {

    /**
     * 登录
     *
     * @param param
     * @return
     * @
     */
    User login(LoginParam param) ;

    /**
     * 获取JWT token
     *
     * @param user
     * @return
     * @
     */
    String genToken(User user) throws JOSEException;

    /**
     * 用户详情
     *
     * @param subject
     * @return
     */
    User detail(String subject);


    /**
     * 用户列表
     * @param param
     * @return
     */
    Page<User> list(PageRequestParam param);


    /**
     * 根据账号查询用户
     *
     * @param account
     * @return
     */
    User getUserByAccount(String account);

}